Today, instant live cloning of virtual machines (VMs) enables users to provision a live clone of a virtual machine in less than a second, and to provision thousands of live clones in a matter of seconds. Current VM fork operations require a stunned, or quiesced, VM to be the source VM, also referred to as the parent VM or origin VM, for any live replica VM, also referred to as a child VM or destination VM. A parent VM is explicitly marked as a source VM and such VMs are understood and managed by current VM systems and users differently from other VMs. For example, a parent VM cannot be restored or powered on if there is any running child VM of that parent VM, nor can such a parent VM be deleted. While the parent VM is managed by the system and consumes memory and storage resources, the parent VM remains in a permanent quiesced state unable to further execute.
That is, the parent VM cannot execute instructions while quiesced. Further, since parts of the runtime state of the parent VM are shared between the parent VM and child VM, the parent VM cannot be modified or deleted while there are children thereof. The parent VM also consumes swap space and associated in-memory metadata. Child VMs are also limited. For example, in some implementations, to power on, the child VM must be on the same host as the parent or a copy of the parent, due to sharing of runtime state. Second, device customization is limited because checkpoint state is shared. Adding or removing network devices, and/or removing storage devices is generally not possible on children VMs except when special functionality is added to the platform and management layers. This special functionality increases code complexity across the VM system, and requires substantially more engineering resources to deliver. In addition to the impact on VMs, the existing VM fork operation design is implemented across a variety of features in VM systems, leading to code sprawl, testing complexity, and performance overheads.
Corresponding reference characters indicate corresponding parts throughout the drawings. In FIGS. 1 to 6, the systems are illustrated as schematic drawings. The drawings may not be to scale.